package com.basker.pisces.core.meta;

/**
 * 描述字段的元信息
 *
 * @author hangwen
 */
public interface IField {

    /**
     * 显示名称
     *
     * @return
     */
    String getDisplayName();

    /**
     * 字段名称
     *
     * @return
     */
    String getName();

    /**
     * 获取字段在当前对象元数据中的顺序
     *
     * @return
     */
    int getOrder();

    /**
     * 获取对象的字段值
     *
     * @param dataObject
     * @return
     */
    Object getValue(Object dataObject);

    /**
     * 设置字段在当前对象元数据中的顺序
     *
     * @param order
     */
    void setOrder(int order);

    /**
     * 设置字段的值
     *
     * @param dataObject
     * @param value
     */
    void setValue(Object dataObject, Object value);
}
